package com.ruifu.common.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruifu.common.eneity.BaseEntityPlus;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @author nyr
 * @create 2019/12/23
 */
@Data
@TableName("materiel_versions")
public class MaterielVersions extends BaseEntityPlus implements Serializable {
    private static final long serialVersionUID = -6338796290215224545L;

    /**
     * 物料版本id
     */
    @TableId(value = "mv_id", type = IdType.AUTO)
    private Long mvId;

    /**
     * 物料id
     */
    @TableId(value = "mv_materiel_id", type = IdType.AUTO)
    private Long mvMaterielId;

    /**
     * 版本内部序号：自增长
     */
    @TableField(value = "mv_versions_order")
    private Long mvVersionsOrder;

    /**
     * 外部版本号：示例：0、1、2、3...或0、A、B、C...
     */
    @TableField(value = "mv_identify")
    private String mvIdentify;

    /**
     * 最新版本标记：0-否、1-是（注意：每个物料当前只有一个最新版本）
     */
    @TableField(value = "mv_new_version_flag")
    private Boolean mvNewVersionFlag;

    /**
     * 生产生效时间
     */
    @TableField(value = "mv_production_start_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date mvProductionStartTime;

    /**
     * 生产失效时间
     */
    @TableField(value = "mv_production_end_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date mvProductionEndTime;

    /**
     * 数据状态：0-设计中 3-流程中 1-已发布 2-已作废
     */
    @TableField(value = "mv_design_status")
    private String mvDesignStatus;

    /**
     * 生命周期阶段：试制、批试、量产、作废（支持用户字典自定义）
     */
    @TableField(value = "mv_lcystatus")
    private String mvLcystatus;

    /**
     * 工厂有效性
     */
    @TableField(value = "mv_plant_valid")
    private String mvPlantValid;

    /**
     * 发布时间
     */
    @TableField(value = "mv_issue_time")
    private Date mvIssueTime;

    /**
     * 扩展属性值
     */
    @TableField(value = "mv_extend_property")
    private String mvExtendProperty;

    /**
     * 特征参数值
     */
    @TableField(value = "mv_feature_property")
    private String mvFeatureProperty;

    /**
     * 规格
     */
    @TableField(value = "mv_specification")
    private String mvSpecification;

    /**
     * 重量
     */
    @TableField(value = "mv_weight")
    private Long mvWeight;

    /**
     * 材质
     */
    @TableField(value = "mv_texture")
    private String mvTexture;

    /**
     * 主计量单位ID
     */
    @TableField(value = "mv_main_unit")
    private Integer mvMainUnit;

    /**
     * 制造：0-自制 1-外购 2-外协
     */
    @TableField(value = "mv_manufacture")
    private Integer mvManufacture;


    /**
     * 图号：如对称件（预留）
     */
    @TableField(value = "mv_picture_number")
    private String mvPictureNumber;

    /**
     * 版本描述
     */
    @TableField(value = "mv_remark")
    private String mvRemark;

    /**
     * 物料对象
     */
    @TableField(exist = false)
    private Materiel materiel;
}
